import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
// electron插件
import electron from 'vite-plugin-electron'
import renderer from 'vite-plugin-electron-renderer'
// 路径设置
import path from "path";
// element图标
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
// 自动引入插件
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import {ElementPlusResolver} from 'unplugin-vue-components/resolvers'

const pathSrc = path.resolve(__dirname, 'src')
export default defineConfig({
  resolve: {alias: {'@': pathSrc,}}, // 文件系统路径别名
  // 插件管理
  plugins: [
    vue(),
    // 自动引入插件
    AutoImport({
      resolvers: [
        // elementPlus插件
        ElementPlusResolver(),
        // element图标
        IconsResolver({
          prefix: 'Icon'
        })
      ],
      // 引入路径
      dts: path.resolve(pathSrc + '/autoImport', 'auto-imports.d.ts')
    }),
    // 引入通用插件
    Components({
      resolvers: [
        // elementPlus插件
        ElementPlusResolver(),
        // element图标
        IconsResolver({
          enabledCollections: ['ep', 'carbon', 'noto']
        })
      ],
      // 引入路径
      dts: path.resolve(pathSrc +  '/autoImport', 'components.d.ts')
    }),
    //  electron窗口
    electron([
      // 主程序
      {
        entry: 'electron/main.ts',
      },
      // 预加载
      {
        entry: 'electron/preload.ts',
        onstart(options) {
          options.reload()
        },
      },
    ]),
    // electron渲染
    renderer(),
    //补充一个图标的导入配置
    Icons({
      autoInstall: true,
    }),
  ],
});
